package com.sc.nft.service;

import com.sc.nft.entity.ChainCallBackLog;

public interface ChainCallbackService {

    /**
     * 玛特联盟链 铸造结果处理
     * @param chainCallBackLog
     */
    void deploy(ChainCallBackLog chainCallBackLog);

    /**
     * 玛特联盟链 发行结果处理
     * @param chainCallBackLog
     */
    void mint(ChainCallBackLog chainCallBackLog);

    /**
     * 玛特联盟链 批量发行结果处理
     * @param chainCallBackLog
     */
    void mintBatch(ChainCallBackLog chainCallBackLog);

    /**
     * 玛特联盟链 转移结果处理
     * @param chainCallBackLog
     */
    void transfer(ChainCallBackLog chainCallBackLog);

    /**
     * 玛特联盟链 销毁结果处理
     * @param chainCallBackLog
     */
    void burn(ChainCallBackLog chainCallBackLog);

    /**
     * 玛特联盟链 更新元数据结果处理
     * @param chainCallBackLog
     */
    void updateMetaData(ChainCallBackLog chainCallBackLog);
    /**
     * 玛特联盟链 更新批量元数据结果处理batch
     * @param chainCallBackLog
     */
    void updateMetaDataBatch(ChainCallBackLog chainCallBackLog);
    /**
     * 玛特联盟链 给用户转账代币
     * @param chainCallBackLog
     */
    void transferBalance(ChainCallBackLog chainCallBackLog);

    /**
     * 玛特联盟链 回收藏品
     * @param chainCallBackLog
     */
    void recycleCollection(ChainCallBackLog chainCallBackLog);
    /**
     * 玛特联盟链 生态销毁
     * @param chainCallBackLog
     */
    void ecologyDestroyCollection(ChainCallBackLog chainCallBackLog);

    /**
     * 玛特联盟链 交易池销毁
     * @param chainCallBackLog
     */
    void tradingDestroyCollection(ChainCallBackLog chainCallBackLog);

    /**
     * 玛特联盟链 质押销毁
     * @param chainCallBackLog
     */
    void pledgeDestroyCollection(ChainCallBackLog chainCallBackLog);

    /**
     * 玛特联盟链  转增到玛特钱包
     * @param chainCallBackLog
     */
    void transferToMetaWallet(ChainCallBackLog chainCallBackLog) throws IllegalAccessException;

    /**
     * 玛特钱包转入
     * @param chainCallBackLog
     */
    void transferFromMetaWallet(ChainCallBackLog chainCallBackLog);
}
